import express from 'express';
import { unioformDateTransform} from '../utils/index.js';
import {checkLogin} from './middleWare/index.js'

import  tableModule from '../models/index.js';

const {
    usersModel,
    userLoginStatusModel
} = tableModule


const router = express.Router()

// 用户登录
router.post('/login',async(req,res)=>{
    let data =  req.body
    // 检查参数是否完整
    let result = await usersModel.getUserByCredentials(data.userName,data.password)

    if(result){
        // 限制一个账号只能一个用户登录 //待完善  

        //记录用户登录状态信息
        let {token,loginDate} = await userLoginStatusModel.addUserLoginStatus(result)

        if(!token){
            return res.status(500).json({
                code:500,
                message:"登录状态记录失败",
                data:null
            })
        }
        // 更新用户表中的最后登录时间
        await usersModel.updateUser(result.id,{
            lastLoginTime: unioformDateTransform(loginDate)
        })

        return res.json({
            code:200,
            message:"登录成功",
            data:{
                token:token
            }
        })
    }else{
        return res.json({
            code:500,
            message:"用户名或密码错误,请重新输入",
            data:null
        })
    }
})


//用户退出
router.post('/logout',checkLogin, async (req,res)=>{
    const token = req.get("Token")
    let result = await userLoginStatusModel.updateUserLoginStatus(token, {expiredTime: unioformDateTransform(new Date())})
    if(result){
        return res.json({
            code: 200,
            message: '退出成功',
            data: true
        })
    }else{
        return res.status(500).json({
            code: 500,
            message: '退出失败',
            data: false
        })
    }
})



export default router;  